"""
元组和字典的拆包(了解)

    - 在调用带有多值参数的函数时，如果希望：
        将一个元组变量直接传递给 args
        将一个字典变量直接传递给 kwargs
    - 就可以使用拆包，简化参数的传递，拆包的方式是：
        在元组变量前，增加一个 *
        在字典变量前，增加两个 **
"""


def demo(*args, **kwargs):
    print(args)
    print(kwargs)


# 调用 demo 函数
gl_nums = (1, 2, 3)
gl_xiaoming = { "name": "小明", "age": 18 }

# 会把参数作为元组类型直接传递给 args，输出结果如下：
# # ((1, 2, 3), {'name': '小明', 'age': 18})
# # {}
# demo(gl_nums, gl_xiaoming)

# 使用拆包的方式出传递参数，使用拆包后输出结果
# # (1, 2, 3)
# # {'name': '小明', 'age': 18}
demo(*gl_nums, **gl_xiaoming)
